package java32;

import java.util.Scanner;
class Person{
	private String name;
	private int age;
	private boolean gender;
	private int id;
	static int t = 0;
	public Person() {
		System.out.println("This is constructor");
		System.out.println(name+","+age+","+gender+","+id);
	}
	public Person(String name,int age,boolean gender){
		this.name = name;
		this.age = age;
		this.gender = gender;
	}
	static{
         System.out.println("This is static initialization block");
   }
	{
		this.id = t++;
		System.out.printf("This is initialization block, id is %d\n",id);
	}
	public String toString() {
		return "Person [name=" + name + ", age=" + age + ", gender=" + gender + ", id=" + id + "]";
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public boolean isGender() {
		return gender;
	}
	public void setGender(boolean gender) {
		this.gender = gender;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}	
}
public class Java32 {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int n = Integer.parseInt(in.nextLine());
		Person[] per = new Person[n];
		for (int i = 0; i < per.length; i++) {
			Person p = new Person(in.next(),in.nextInt(),in.nextBoolean());
			per[i] = p;
		}
		for (int j = per.length-1; j >= 0; j--) {
			System.out.println(per[j]);
		}
		System.out.println(new Person());
	}
}